2
3.3 栈和队列
栈
1. 用数组实现顺序栈，支持 push、pop、peek、isEmpty、isFull，处理栈空 / 满时的操作异常。测试用例：push (1,2,3)→peek ()=3→pop ()=3→pop ()=2→栈内剩 [1]。
2. 用栈实现 "字符串反转"：输入 "hello"，输出 "olleh"；输入 "abcde"，输出 "edcba"。
队列
1. 用链表实现链队列，支持 enqueue、dequeue、front、rear、isEmpty。测试用例：enqueue(1,2,3)→front ()=1，rear ()=3→dequeue ()=1→队列剩 [2,3]。
2. 用两个栈实现队列功能（入队→栈 A，出队→栈 B），测试用例：入队 1→2→3→出队= 1→入队 4→出队 = 2→出队 = 3→出队 = 4。
链队列
1. 基于链队列实现 "打印任务模拟"：每个任务含 ID 和打印页数，每页打印耗时 1 秒，统计每个任务的等待时间和完成时间。测试用例：3 个任务（ID1:2 页，ID2:3 页，ID3:1
本套试题由曹婷老师根据元宇宙平台非凡就业班课程内容整理
页），输出各任务的等待时间（0,2,5）和完成时间（2,5,6）。
循环队列
1. 用数组实现循环队列，支持 enqueue、dequeue、front、isEmpty、isFull（通过 (rear+1)%maxSize == front 判断）。测试用例：maxSize=5，enqueue (1,2,3,4)→队满→dequeue()=1→enqueue (5)→队列元素为 [2,3,4,5]。